package com.sysware.designpattern.proxy.jdkstaticproxy;

import com.sysware.designpattern.proxy.IUserDao;

class UserDao implements IUserDao {

	@Override
	public void save() {
		System.out.println("----已经保存数据!----");
	}
}

class UserDaoProxy {
	// 接收保存目标对象
	private IUserDao target;

	public UserDaoProxy(IUserDao target) {
		this.target = target;
	}

	public void save() {
		System.out.println("开始事务...");
		target.save();// 执行目标对象的方法
		System.out.println("提交事务...");
	}
}

/**
 * 普通静态代理模式
 * 
 * @author spc-00d
 *
 */
public class App {
	public static void main(String[] args) {
		// 目标对象
		UserDao target = new UserDao();

		// 代理对象,把目标对象传给代理对象,建立代理关系
		UserDaoProxy proxy = new UserDaoProxy(target);

		proxy.save();// 执行的是代理的方法
	}
}